package com.lst.tools.basics.serializer;

import com.lst.tools.basics.exception.DeSerializerException;
import com.lst.tools.basics.utils.DateUtils;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.util.Date;

/**
 * 转换字符串为日期类型，主要是从前台往后台传递时的日期（根据泛型不同可对其他类型做处理，如格式化金额）
 *
 * @author: Frank
 * @date: 2019/09/24 13:51
 * @version: V1.0
 */
public class DateJsonDeserializer extends JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) {
        try {
            return DateUtils.parse(jsonParser.getText(), DateUtils.DATE_FORMAT_2);
        } catch (Exception e) {
            e.printStackTrace();
            throw new DeSerializerException("解析日期异常");
        }
    }
}
